// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"

class MeteorAnimFrame;
/**
 * 
 */
class METEOR5_API Utility
{
public:
	Utility();
	~Utility();
	static AActor * Find(FString name);
	static void Trace();
	static void Lerp(MeteorAnimFrame * pPrev, MeteorAnimFrame * pNext, float p, MeteorAnimFrame * pOut);
	static void Blend(MeteorAnimFrame * pPrev, MeteorAnimFrame * pNext, float p, MeteorAnimFrame * pOut);
};

class METEOR5_API ShaderUnit {
public:
	ShaderUnit();
	~ShaderUnit();
	int32 TextureArg0;
	FString TextureArg1;
	int32 TwoSideArg0;
	FString BlendArg0;
	FString BlendArg1;
	FString BlendArg2;
	float OpaqueArg0;
};

class METEOR5_API MeshVert {
public:
	FVector pos;
	FVector normal;
	FColor color;
	FVector2D uv;
};


class METEOR5_API MeshFace {
public:
	int material;
	TArray<int32> triangle;
};


class METEOR5_API MeshUnit {
public:
	FString name;
	TArray<float> vertex_data;
	TArray<int> triangle_data;
	TArray<MeshVert*>vertices;
	TArray<MeshFace*>faces;
};